﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for Product
/// </summary>
public class Product
{
    private static SqlConnection sqlConnection = new SqlConnection();

    public Product()
    {
        //
        // TODO: Add constructor logic here
        //
    }

    
    public int ProductID { get; set; }
    public string ProductName { get; set; }

    public static DataTable GetAll()
    {
        // Lấy tất cả Product, trả về dạng DataTable
        sqlConnection.Open();

        DataTable tableProduct = new DataTable();


        SqlCommand sqlCommand = new SqlCommand("usp_Product_GetAll", sqlConnection);
        // sqlCommand.ExecuteNonQuery();
        SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);
        sqlDataAdapter.Fill(tableProduct);

        sqlConnection.Close();
        return tableProduct;
    }

    public static DataTable GetByPrimaryKey(Product product)
    {
        // Lấy tất cả Product, trả về dạng DataTable
        sqlConnection.Open();

        DataTable tableProduct = new DataTable();

        SqlCommand sqlCommand = new SqlCommand("usp_Product_GetByPrimaryKey", sqlConnection);
        sqlCommand.CommandType = CommandType.StoredProcedure;
        sqlCommand.Parameters.AddWithValue("@ProductId", product.ProductID);
        SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);
        sqlDataAdapter.Fill(tableProduct);

        sqlConnection.Close();
        return tableProduct;
    }

    public static bool Insert(Product product)
    {
        // Thêm Product, thành công thì trả về true
        // Phải có dữ liệu của Product để insert

        try
        {
            // Các câu lệnh để insert
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }

    public static bool Delete(Product product)
    {
        // Cập nhật Product, thành công thì trả về true
        try
        {
            // Các câu lệnh để insert
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }

    public static bool Update(Product product)
    {
        // Cập nhật Product, thành công thì trả về true
        try
        {
            // Các câu lệnh để insert
            sqlConnection.Open();

            DataTable tableProduct = new DataTable();


            SqlCommand sqlCommand = new SqlCommand("usp_Product_Update", sqlConnection);
            // SqlCommand sqlCommand = new SqlCommand("usp_Product_Update  ProductName=@ProductName, CategoryName=@CategoryName", sqlConnection);
            SqlParameter parameter = new SqlParameter("@ProductName", SqlDbType.NVarChar);
            parameter.Value = product.ProductName;
            sqlCommand.Parameters.Add(parameter);

            // parameter = new SqlParameter("@ProductName", SqlDbType.NVarChar);

            // sqlCommand.Parameters.Add("@ProductName", SqlDbType.NVarChar) ;
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);
            sqlDataAdapter.Fill(tableProduct);

            sqlConnection.Close();
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }
}